In a distributed database management system (DBMS), for example a main memory-based DBMS, aggregation within an online analytical processing (OLAP) engine can be highly parallelized. As a consequence of this a parallelization, computed results are typically distributed over several parts. These parts are moved to one processing node where all relevant data are collected to allow generation of corresponding result columns. Different parts are likely to have different sizes due to a “having filter” in the SQL statement that may remove an arbitrary number of rows. The task of a plan operation is the collection of all valid rows that may be returned directly to the user or constitute an input for a subsequent query. In general, result columns are either aggregation results or values that are part of the “group-by” statement of the input query.
Previously available approaches to plan operations have typically involved generating materialized columns, which do not maintain an additional dictionary but rather save each value directly within the column.